package com.rc.evcharger.task;//package com.rc.evcharger.task;
//
//import cc.messcat.bean.DataUtil;
//import cc.messcat.common.SocketConstant;
//import cc.messcat.common.util.DateHelper;
//import cc.messcat.component.notify.OrderNotify;
//import cc.messcat.entity.redis.Order;
//import cc.messcat.service.order.OrderService;
//import cc.messcat.service.redis.ROrderService;
////import com.rc.evcharger.common.utils.DataUtil;
//import com.rc.evcharger.component.OrderInfoNotify;
//import com.rc.evcharger.service.order.OrderInfoService;
//import com.rc.evcharger.service.redis.RedOrderService;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import java.util.Date;
//import java.util.List;
//
///**
// * 定时请求正在充电的桩的充电数据
// *
// * @author kb
// */
//@Component("currentOrderTask")
//public class CurrentOrderTask {
//    Logger logger = LoggerFactory.getLogger(CurrentOrderTask.class);
//    @Autowired
//    private RedOrderService rOrderService;
//
//    @Autowired
//    private OrderInfoService orderService;
//
//    @Autowired
//    private OrderInfoNotify orderNotify;
//
//    /**
//     * 获取保存在redis中的订单对应的桩信息然后判断是否离线，如果不离线就读取充电过程中的信息
//     */
//
//    public void run() {
//        logger.warn("redis自动扫描订单开始执行....");
//        List<Order> list = (List<Order>) rOrderService.getObjects(new Order());
//        for (Order order : list) {
//            if (order.getOrderId() == null) {
//                return;
//            }
//            cc.messcat.entity.order.Order eOrder = orderService.retrieveObject(order.getOrderId());
//            if (eOrder == null) {
//                logger.warn("redis中的订单号不存在,对应订单ID:" + order.getOrderId());
//                continue;
//            }
//            try {
//                String timeKey = DataUtil.getCurrDataKey(eOrder.getPile().getRtua(), eOrder.getGun().getGunNum(), DataUtil.dataCodes[22][0].toString(),
//                        eOrder.getMember().getCardNo());
//                String timeValue = rOrderService.getRedis(timeKey);
//                //没有时间键值，说明是旧的订单数据，不做处理;
//                if (timeValue == null) {
//                    continue;
//                }
//                Date date = DateHelper.stringToDate(timeValue, DateHelper.DATE_COMMON_FORMAT);
//                if ((System.currentTimeMillis() - date.getTime()) / 1000 > 5 * 60) {
//                    //如果该订单还在充电中、则暂时不结算
//                    cc.messcat.entity.order.Order order1 = orderService.retrieveObject(order.getOrderId());
//                    if (SocketConstant.GUN_USE.equals(order1.getGun().getUsingStatus())) {
//                        continue;
//                    }
//
//                    logger.warn("平台扫描结算订单ID为：" + order.getOrderId());
//
//                    //结算订单
//                    updateOrderBalanceByRedis(order.getOrderId());
//
//                    //推送对应订单
//                    orderNotify.orderInfoNotify(order.getOrderId());
//                }
//            } catch (Exception e) {
//                logger.error("后台redis自动结算出错CurrentOrderTask.java：订单号为:" + order.getOrderId(), e);
//            }
//        }
//    }
//
//
//    private void updateOrderBalanceByRedis(Long orderId) throws Exception {
//        orderService.updateOrder(orderId, SocketConstant.STOP_URGENT);
//    }
//
//    public static void main(String[] args) {
//        System.out.println(System.currentTimeMillis());
//        System.out.println(new Date().getTime());
//    }
//}
